﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using App_Persistencia;

namespace App_Negocio
{
    public class Alimento
    {
        int id;

        public int Id
        {
            get { return id; }
            set { id = value; }
        }
        string nombre;

        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        string descripcion;

        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
        float precio;

        public float Precio
        {
            get { return precio; }
            set { precio = value; }
        }

        Alimento_Tipo tipo_AlimentoRef;

        public Alimento_Tipo Tipo_AlimentoRef
        {
            get { return tipo_AlimentoRef; }
            set { tipo_AlimentoRef = value; }
        }
        int tipo_Alimento;

        public int Tipo_Alimento
        {
            get { return tipo_Alimento; }
            set { tipo_Alimento = value; }
        }
        private string foto_Plato;

        public string Foto_Plato
        {
            get { return foto_Plato; }
            set { foto_Plato = value; }
        }

        List<App_Negocio.Alimento_Detalle> detalle;

        public List<App_Negocio.Alimento_Detalle> Detalle
        {
            get { return detalle; }
            set { detalle = value; }
        }

        private Alimento_Grupo alimentoGrupo;

        public Alimento_Grupo AlimentoGrupo
        {
            get { return alimentoGrupo; }
            set { alimentoGrupo = value; }
        }


        public List<Alimento> listarAlimentosPorGrupo()
        {
            return listarAlimentosPorGrupo(-1);
        }

        public List<Alimento> listarAlimentosPorGrupo(int idEvento)
        {
            List<Alimento> listaAlimentos = new List<Alimento>();

            App_Persistencia.Alimento_Data ad = new Alimento_Data();
            ad.AlimentoGrupo.Nombre = this.AlimentoGrupo.Nombre;
            ad.AlimentoGrupo.Id = this.AlimentoGrupo.Id;
            DataTable tabla = ad.listarAlimentoXGrupo(idEvento);
            this.AlimentoGrupo.Nombre = ad.AlimentoGrupo.Nombre;//por si se actualiza
            this.AlimentoGrupo.Id = ad.AlimentoGrupo.Id;
            Alimento item = null;
            foreach (DataRow dr in tabla.Rows)
            {
                item = new Alimento();
                item.Id = int.Parse(dr["Numero"].ToString());
                item.Nombre = dr["Nombre"].ToString();
                item.Descripcion = dr["Descripcion"].ToString();
                item.Foto_Plato = dr["FotoPlato"].ToString();
                listaAlimentos.Add(item);
            }

            return listaAlimentos;
        }

        public DataTable buscarAlimentosPorTipo(int idTipoAlimento)
        {
            DataTable tablaAlimentos = Alimento_Data.buscarAlimentosPorTipo(idTipoAlimento);
            return tablaAlimentos;
        }

        public DataTable buscarAlimentosPorMenu(int idMenu)
        {
            DataTable tablaAlimentos = Alimento_Data.buscarAlimentosPorMenu(idMenu);
            return tablaAlimentos;
        }

        public DataTable buscarAlimentosPorTipos(string tipo)
        {
            App_Persistencia.Alimento_Data aliData = new App_Persistencia.Alimento_Data();
            DataTable tabla = aliData.buscarAlimentosPorTipos(tipo);
            return tabla;
        }

        public static DataTable listarAlimentosTabla()
        {
            DataTable tablaAlimentos = Alimento_Data.listarAlimento();
            return tablaAlimentos;
        }

        public static DataTable listarAlimentosTabla(Insumo insPrincipal)
        {
            DataTable tablaAlimentos = Alimento_Data.listarAlimento();
            return tablaAlimentos;
        }

        public void guardadAlimento()
        {
            Alimento_Data ali = new Alimento_Data();
            ali.Nombre = Nombre;
            ali.Tipo_Alimento = Tipo_AlimentoRef.Id;
            ali.Id = 2;//Id
            ali.Descripcion = Descripcion;
            ali.AlimentoGrupo = new Alimento_Grupo_Data();
            ali.AlimentoGrupo.Id = AlimentoGrupo.Id;
            //agregar lista de insumos
            
            foreach (Alimento_Detalle det in Detalle)
            {
                App_Persistencia.Alimento_Detalle_Data dData = new Alimento_Detalle_Data();
                dData.Cantidad = det.Cantidad;
                dData.Insumo = new Insumo_Data();
                dData.Insumo.Id = det.Insumo.Id;
                ali.Detalle.Add(dData);
            }
            ali.guardarAlimento();
        }


        public DataTable cargarAlimentoDetalle(int idAlimento)
        {
            Alimento_Data alimento = new Alimento_Data();
            DataTable dataTable = alimento.cargarAlimentoDetalles(idAlimento);



            return dataTable;
        }

        public string buscarFotoAlimento(int idMenu)
        {
            Alimento_Data aliData = new Alimento_Data();
            return aliData.buscarFotoAlimento(idMenu);
        }

        public string buscarFotoAlimento2(int idAlimento)
        {
            Alimento_Data aliData = new Alimento_Data();
            return aliData.buscarFotoAlimento2(idAlimento);
        }


    }
}
